The invention disclosed herein relates generally to methods for providing access to metadata. More particularly, the present invention relates to a method, system, and article of manufacture for virtualizing the metadata of information management systems by providing access to the metadata of a first computer system at a second computer system such that the metadata of the first system appears native to the second system.
Companies today often have computing infrastructures comprising many disparate computer systems, the need for which arises from such situations as where newly purchased systems must be integrated with older systems or where organizations with different systems merge. The result is that various portions of data and metadata, e.g., data used to describe data, needed by a company often exist on several different systems. For example, a company may have data in SAP, stored in IBM DB/2, and Lotus Domino. Database systems such as these support different methods and formats for defining metadata. IBM's DB2, for example, uses SQL tables and other constructs to store tabular data, while Lotus Domino uses free form documents and Forms. Indeed, even similar systems—such as relational databases from different vendors—support different data types, options and syntax for defining and working with metadata.
Companies also have the need to build applications that integrate information from all of their disparate software systems. Having a company's data on several different systems is undesirable since the metadata used to describe and display such data is implemented differently on each system. Furthermore, working with metadata in these disparate systems requires knowledge of the different metadata supported by these systems as well as significant breadth of knowledge and increased programming to work with the metadata from these systems in a single application. Developers who possess skill sets involving multiple software systems are less common, and such software is costly to build and deploy, thereby necessarily driving up costs involved with accessing the data.
In an effort to integrate systems, mechanisms have been developed to provide a rudimentary level of access to metadata being managed by disparate software systems. Systems such as ODBC and J2EE are standards that provide a single programmatic interface to multiple systems, so long as those systems are compliant with the standard. Through ODBC, for example, a SQL command to create a table can be sent to any compliant system. A significant drawback to techniques such as these, however, is that not all systems support some or all of these standards. Indeed, some are especially new and limited in availability. Secondly, these techniques each create a new language or programming interface for working with metadata, thereby requiring additional training on the part of developers, and new program code to be developed to get at the metadata. Furthermore, another drawback is that these techniques tend to result in a “least common denominator” approach whereby unique features of each system are lost.
There is thus a need for a system and method for virtualizing the metadata of disparate systems. Virtualization provides distinct programming models and data types that do not require the rewriting or creation of metadata, or program code to access metadata, on the part of the development staff of the company interfacing the disparate systems. The invention allows metadata resident in one system to be fully useable in a disparate system.